import { ArgumentMetadata, Injectable, PipeTransform, HttpStatus } from '@nestjs/common';
import { ApiException } from '../../../common/exceptions/api.exception';
import { ApiErrorCode } from '../../../common/enums/api-error-code.enum';
/**
 * 自定义管道验证器
 */
@Injectable()
export class UserIdPipe implements PipeTransform {
  /**
   * PipeTransfrom 接口就只有一个 transfrom 方法
   * @param value 需要处理的数据源
   * @param metadata 这个对象的一些 元数据（metadate）
   */
  transform(value: any, metadata: ArgumentMetadata) {
    
      value = parseInt(value)
      //我们可以写自己的验证逻辑然后在验证失败的时候让他抛出 ApiException
      if (isNaN(value) || typeof value !== 'number' || value <= 0) {
        throw new ApiException('用户ID无效', ApiErrorCode.USER_ID_INVALID, HttpStatus.BAD_REQUEST);
      }
    
      return value;
  


 
  }
}
